Public এবং Private Functions এর পার্থক্য
Elm একটি ফাংশনাল প্রোগ্রামিং ভাষা যা মূলত কার্যকরী এবং পরিষ্কার কোড লেখার জন্য ডিজাইন করা হয়েছে। কোডের মধ্যে public এবং private ফাংশন ব্যবহৃত হয় একমাত্রিকতার (encapsulation) সুবিধা প্রদান করতে।
এখানে public এবং private ফাংশনগুলির পার্থক্য এবং তাদের ব্যবহার সম্পর্কে বিস্তারিত আলোচনা করা হলো।
১. Public Functions
Public Functions হলো ফাংশনগুলো যা কোডের অন্যান্য অংশ বা মডিউল দ্বারা অ্যাক্সেস করা যায়। এই ফাংশনগুলি সাধারণত module এর বাইরে থেকে ব্যবহার করা যায় এবং অন্য কোথাও import করার মাধ্যমে অ্যাক্সেস করা সম্ভব।
Public Functions এর বৈশিষ্ট্য:
- অন্য মডিউল বা ফাইল থেকে অ্যাক্সেসযোগ্য: এগুলি একটি মডিউল থেকে অন্য মডিউলে আমদানি করে ব্যবহার করা যেতে পারে।
- অন্য ডেভেলপারদের জন্য এক্সপোজড: যেকোনো পাবলিক ফাংশন একটি লাইব্রেরি বা API এর অংশ হিসেবে কাজ করতে পারে, যেখানে অন্য ডেভেলপাররা সেটি ব্যবহার করতে পারে।
উদাহরণ:
module Math exposing (add)
add : Int -> Int -> Int
add a b = a + bএখানে, add ফাংশন একটি পাবলিক ফাংশন হিসেবে Math মডিউলে এক্সপোজড হয়েছে। এটি অন্য মডিউল থেকে আমদানি করে ব্যবহার করা যাবে।
import Math exposing (add)
result = add 5 10 -- result = 15এখানে add ফাংশনটি Math মডিউল থেকে আমদানি করা হয়েছে এবং ব্যবহৃত হয়েছে।
২. Private Functions
Private Functions হলো ফাংশনগুলো যেগুলি শুধুমাত্র তার নিজস্ব মডিউলের মধ্যে ব্যবহারযোগ্য। এগুলি মডিউলের বাইরের কোডের জন্য অ্যাক্সেসযোগ্য নয়। সাধারণত, এগুলি ডেটা বা কার্যকলাপ লুকানোর জন্য ব্যবহৃত হয় এবং মডিউল এর অভ্যন্তরে কোডের কার্যক্রম পরিচালনা করতে সহায়তা করে।
Private Functions এর বৈশিষ্ট্য:
- অ্যাক্সেসযোগ্য নয় বাইরের কোড থেকে: এই ফাংশনগুলো শুধুমাত্র সেই মডিউলে বা কোড ব্লকে ব্যবহৃত হতে পারে যেখান থেকে এগুলি ডিফাইন করা হয়েছে।
- ডেটা লুকানো: Private Functions সাধারণত মডিউলটির অভ্যন্তরীণ ব্যবস্থাপনা বা ডেটার পরিবর্তন সংক্রান্ত কাজ করে থাকে।
উদাহরণ:
module Math exposing (add)
-- Private function
subtract : Int -> Int -> Int
subtract a b = a - b
-- Public function
add : Int -> Int -> Int
add a b = subtract a b + bএখানে subtract ফাংশনটি একটি private function, যেটি শুধুমাত্র Math মডিউল এর ভিতরে ব্যবহৃত হতে পারে। অন্য মডিউলে বা ফাইল থেকে এটি অ্যাক্সেস করা যাবে না।
import Math exposing (add)
-- This will work
result = add 5 10 -- result = 10
-- This will not work as subtract is private
-- result2 = Math.subtract 5 10 -- This will give an errorএখানে subtract ফাংশনটি private, তাই আপনি Math.subtract কে সরাসরি অ্যাক্সেস করতে পারবেন না।
৩. Public এবং Private Functions এর পার্থক্য
| বৈশিষ্ট্য | Public Functions | Private Functions |
|---|---|---|
| অ্যাক্সেসযোগ্যতা | অন্য মডিউল বা ফাইল থেকে অ্যাক্সেস করা যায় | শুধুমাত্র তার নিজ মডিউল থেকে অ্যাক্সেস করা যায় |
| ব্যবহার | লাইব্রেরি বা API হিসেবে ব্যবহৃত হতে পারে | ডেটা লুকানো এবং মডিউল এর অভ্যন্তরীণ কার্যক্রমের জন্য ব্যবহৃত |
| ডিফাইন করা | exposing কিওয়ার্ড দিয়ে অন্য মডিউলে এক্সপোজ করা হয় | ডিফাইনেশন শুধুমাত্র মডিউলের অভ্যন্তরে থাকে |
| সাধারণত ব্যবহৃত | এক্সপোজড ফাংশন হিসেবে লাইব্রেরি বা ইউজার ইন্টারফেসে ব্যবহৃত | অভ্যন্তরীণ সহায়ক ফাংশন হিসেবে ব্যবহৃত |
৪. Public এবং Private Functions এর ব্যবহার
Public Functions ব্যবহৃত হয় যখন আপনি আপনার কোডের অংশ অন্য মডিউল বা ইউজার দ্বারা ব্যবহৃত করতে চান, যেমন একটি API বা লাইব্রেরি তৈরি করতে। Private Functions ব্যবহৃত হয় যখন আপনি আপনার কোডের অংশ অন্যান্য অংশ থেকে লুকিয়ে রাখতে চান, যাতে শুধু অভ্যন্তরীণ কার্যক্রমেই এটি ব্যবহৃত হয় এবং বাইরের কোড এতে প্রবেশ না করতে পারে।
উপসংহার
Public Functions এবং Private Functions এর মধ্যে পার্থক্য হল অ্যাক্সেসযোগ্যতার মধ্যে। Public Functions অন্য মডিউল বা ফাইল থেকে অ্যাক্সেসযোগ্য এবং বাইরের কোডের সঙ্গে ইন্টারঅ্যাক্ট করতে ব্যবহৃত হয়, जबकि Private Functions শুধুমাত্র মডিউলের অভ্যন্তরীণ ব্যবস্থাপনায় ব্যবহৃত হয় এবং বাইরের কোড থেকে অ্যাক্সেস করা যায় না। Elm এর এই বৈশিষ্ট্যটি কোডের একমুখীতা এবং নিরাপত্তা বৃদ্ধি করতে সাহায্য করে, বিশেষ করে বড় এবং জটিল প্রকল্পে যেখানে ডেটা বা কার্যকলাপ লুকানো এবং সুসংগঠিত রাখা গুরুত্বপূর্ণ।
Read more